﻿//《C语言从入门到精通》P102
// 第四章 顺序与选择结构程序设计
// 4.2 for 语句
// 33、用 for 求1到100的和

#include<stdio.h>

int main()
{
	int i;
	int sum = 0;

// （1）普通写法
	for (i = 0; i <= 100; i++)
	{
		sum = sum + i;
	}
	printf("我是for计算的：1+2+3+...+99+100=%d \n", sum);
	printf("此时的i=%d \n\n", i);
	// 清零（之前的运行i和sum已经不是0了，赋值以回到定义完的状态）
	i = 0;
	sum = 0;


// （2）若省略第一个表达式
	// 省略的表达式应在for语句之前做出赋值/初始化
	i = 0;
	for (; i <= 100; i++)
	{
		sum = sum + i;
	}
	printf("我是省略第一个表达式计算的：1+2+3+...+99+100=%d \n", sum);
	printf("此时的i=%d \n\n", i);
	// 清零（之前的运行i和sum已经不是0了，赋值以回到定义完的状态）
	i = 0;
	sum = 0;


// （3）若省略第二个表达式
	// 要自行设计跳出循环的语句，不建议这样写
	for (i = 0; ; i++)
	{
		sum = sum + i;
		if (i >= 100)
		{
			break;
		}	
	}
	printf("我是省略第二个表达式计算的：1+2+3+...+99+100=%d \n", sum);
	printf("此时的i=%d \n\n", i);
	// 清零（之前的运行i和sum已经不是0了，赋值以回到定义完的状态）
	i = 0;
	sum = 0;


// （4）省略第三个表达式
	// 其实和普通写法没有区别，还是执行完sum=sum+i，再执行i++，然后判断条件，符合则继续循环
	for (i = 0; i <= 100; )
	{
		sum = sum + i;
		i++;
	}
	printf("我是省略第三个表达式计算的：1+2+3+...+99+100=%d \n", sum);
	printf("此时的i=%d \n\n", i);

	return 0;
}